// 类型
import type { IAllComsUnionsMap } from "@/types";
// 引入业务组件
import SingleSelect from "@/components/SurveyComs/MaterialItems/ChooseComs/SingleSelect.vue";
import MultipleSelect from "@/components/SurveyComs/MaterialItems/ChooseComs/MultipleSelect.vue";
import OptionsSelect from "@/components/SurveyComs/MaterialItems/ChooseComs/OptionSelect.vue";
import SinglePicSelect from "@/components/SurveyComs/MaterialItems/ChooseComs/SinglePicSelect.vue";
import MultiplePicSelect from "@/components/SurveyComs/MaterialItems/ChooseComs/MultiplePicSelect.vue";
import TextNote from "@/components/SurveyComs/MaterialItems/RemarkComs/TextNote.vue";
import DateSelect from "@/components/SurveyComs/MaterialItems/AdvancedComs/DateSelect.vue";
import TextInput from "@/components/SurveyComs/MaterialItems/TextInputComs/TextInput.vue";
import RateScore from "@/components/SurveyComs/MaterialItems/AdvancedComs/RateScore.vue";
// 引入编辑组件
import TitleEditor from "@/components/SurveyComs/EditItems/TitleEditor.vue";
import DescEditor from "@/components/SurveyComs/EditItems/DescEditor.vue";
import PositionEditor from "@/components/SurveyComs/EditItems/PositionEditor.vue";
import SizeEditor from "@/components/SurveyComs/EditItems/SizeEditor.vue";
import WeightEditor from "@/components/SurveyComs/EditItems/WeightEditor.vue";
import ItalicEditor from "@/components/SurveyComs/EditItems/ItaticEditor.vue";
import TextInputTypeEditor from "@/components/SurveyComs/EditItems/InputTypeEditor.vue";
import RemarkTypeEditor from "@/components/SurveyComs/EditItems/RemarkTypeEditor.vue";
import OptionsEditor from "@/components/SurveyComs/EditItems/OptionsEditor.vue";
import PicOptionsEditor from "@/components/SurveyComs/EditItems/PicOptionsEditor.vue";
import DateTypeEditor from "@/components/SurveyComs/EditItems/DateEditor.vue";

import TitleDevider from "@/components/SurveyComs/EditItems/Common/TitleDevider.vue";
import WidthEditor from "@/components/SurveyComs/EditItems/WidthEditor.vue";
import ColorEditor from "@/components/SurveyComs/EditItems/ColorEditor.vue";

import { markRaw } from "vue";
import RateSettingEditor from "@/components/SurveyComs/EditItems/RateSettingEditor.vue";

export const surveyComponentsMap: IAllComsUnionsMap = {
  // - 基础业务组件
  "single-select": markRaw(SingleSelect),
  "single-pic-select": markRaw(SinglePicSelect),
  "text-note": markRaw(TextNote),
  "multiple-select": markRaw(MultipleSelect),
  "option-select": markRaw(OptionsSelect),
  "multiple-pic-select": markRaw(MultiplePicSelect),
  "text-input": markRaw(TextInput),
  "rate-score": markRaw(RateScore),
  "date-select": markRaw(DateSelect),
  // - 预设业务组件
  "personal-info-name": markRaw(TextInput),
  "personal-info-id": markRaw(TextInput),
  "personal-info-birth": markRaw(DateSelect),
  "personal-info-gender": markRaw(SingleSelect),
  "personal-info-age": markRaw(TextInput),
  "personal-info-education": markRaw(OptionsSelect),
  "personal-info-collage": markRaw(TextInput),
  "personal-info-major": markRaw(TextInput),
  "personal-info-industry": markRaw(TextInput),
  "personal-info-career": markRaw(SingleSelect),
  "personal-info-company": markRaw(TextInput),
  "personal-info-position": markRaw(TextInput),
  "contact-way-phone": markRaw(TextInput),
  "contact-way-wechat": markRaw(TextInput),
  "contact-way-qq": markRaw(TextInput),
  "contact-way-email": markRaw(TextInput),
  "contact-way-address": markRaw(TextInput),
  // - 编辑组件
  "title-editor": markRaw(TitleEditor),
  "desc-editor": markRaw(DescEditor),
  "position-editor": markRaw(PositionEditor),
  "options-editor": markRaw(OptionsEditor),
  "size-editor": markRaw(SizeEditor),
  "color-editor": markRaw(ColorEditor),
  "width-editor": markRaw(WidthEditor),
  "weight-editor": markRaw(WeightEditor),
  "italic-editor": markRaw(ItalicEditor),
  "text-input-type-editor": markRaw(TextInputTypeEditor),
  "remark-type-editor": markRaw(RemarkTypeEditor),
  "pic-options-editor": markRaw(PicOptionsEditor),
  "date-type-editor": markRaw(DateTypeEditor),
  "rate-setting-editor": markRaw(RateSettingEditor),
  "title-devider-editor": markRaw(TitleDevider),
  "desc-devider-editor": markRaw(TitleDevider),
};
